Scroll to navigation

ioperm(2) 2007-10-27-16:31 ioperm(2)

Назва

ioperm - встановлює дозволи вводу-виводу портів

Стислий огляд

#include <unistd.h> /* для libc5 */

#include <sys/io.h> /* для glibc */

int ioperm(unsigned long from, unsigned long num, int turn_on);

Опис

Іoperm встановлює біти прав доступу процесу до портів (за адресою) num байтів, починаючи з адреси порту from. Значення дозволу будучи turn_on. Для використання функції ioperm необхідні права root.

Таким чином, можна задати права доступу тільки першим 0x3ff портам вводу-виводу. Для роботи з іншими портами необхідно використовувати функцію iopl. Права не успадковуються після fork(), але успадковуються при exec(). Це можна використати для надання доступу до портів вводу-виводу непривілейованим процесам.

Повернені значення

При вдалому завершенні виклику, повернене значення дорівнюватиме 0. При помилці воно дорівнює -1, і змінна errno також отримає значення помилки.

Коди помилок


Недійсне значення from або num.


Той хто викликав функцію не має достатніх повноважень CAP_SYS_RAWIO.


(Тільки для PPC). Цей виклик не підтримується.

Відповідність стандартам

ioperm являється специфічним для Linux викликом. Не рекомендовано використовувати її у програмах, стерпних на переносних на інші системи програмах.

Зауваження

Libc5 розглядає дану функцію як системний виклик і містить прототип для неї у <unistd.h>. У Glibc1 цього прототипу немає. У Glibc2 цей прототип знаходиться в обох <sys/io.h> та <sys/perm.h>. Не використовуйте другий варіант, він існує тільки для i386.

Дивіться також

iopl(2)

2007-10-27-16:31 © 2005-2007 DLOU, GNU FDL